﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HNG.Portal.BLL;
using HNG.Portal.DAL;
using HNG.Portal.DAL.EntityClasses;
using HNG.Portal.DAL.FactoryClasses;
using HNG.Portal.DAL.HelperClasses;
using SD.LLBLGen.Pro.ORMSupportClasses;
using System.Data;
using HNG.LIB.Common;
public partial class AdminPortal_Controls_Toolbox : System.Web.UI.UserControl
{
    TblRoleManager _TblRoleManager = new TblRoleManager();
    public delegate void ButtonClickHandler(object sender, EventArgs e);
    public event ButtonClickHandler AddClick;
    public event ButtonClickHandler SaveClick;
    public event ButtonClickHandler DelClick;
    public event ButtonClickHandler ApplyClick;
    public event ButtonClickHandler RefeshClick;
    public event ButtonClickHandler SearchClick;
    public event ButtonClickHandler BackClick;
    //public event ButtonClickHandler CancelClick;
    //public event ButtonClickHandler ListClick;

    #region condition
    // SAve
    public bool ShowSave
    {
        set { li_Save.Visible = value; }
    }

    public bool EnableSave {
        set { btnSave.Enabled = value; }
    }

    // Add
    public bool ShowAdd {
        set { li_Add.Visible = value; }
    }

    public bool EnableAdd
    {
        set { btnAdd.Enabled = value; }
    }

    // Del
    public bool ShowDel
    {
        set { li_Del.Visible = value;
        }
    }

    public bool EnableDel
    {
        set { btnDel.Enabled = value; }
    }

    // Apply
    public bool ShowApply
    {
        set { li_Apply.Visible = value; }
    }
    public bool EnableApply
    {
        set { btnApply.Enabled = value; }
    }

    // Refesh
    public bool ShowRefesh
    {
        set { li_Refesh.Visible = value; }
    }
    public bool EnableRefesh
    {
        set { btnRefesh.Enabled = value; }
    }

    // Search
    public bool ShowSearch
    {
        set { li_Search.Visible = value; }
    }
    public bool EnableSearch
    {
        set { btnSearch.Enabled = value; }
    }

    // Back
    public bool ShowBack
    {
        set { li_Back.Visible = value; }
    }
    public bool EnableBack
    {
        set { btnBack.Enabled = value; }
    }

    ////Cancel
    //public bool ShowCancel
    //{
    //    set { li_Cancel.Visible = value; }
    //}
    //public bool EnableCanvel
    //{
    //    set { btnCancel.Enabled = value; }
    //}
    
    ////List
    //public bool ShowList
    //{
    //    set { li_List.Visible = value; }
    //}
    //public bool EnableList
    //{
    //    set { btnList.Enabled = value; }
    //}
    #endregion

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GetListRole();
        }
    }

    private void GetListRole()
    {
        
        hidThanhVienID.Value = Session[Constants.SessionUserId].ToString();        
        //if (_dtRole.Rows.Count > 0)
        //{
        //    DataRow r = (DataRow)_dtRole.Rows[0];
        ////EnableAdd = Convert.ToBoolean(r[TblRoleFields.BtnThem.Name].ToString());
        //EnableDel = Convert.ToBoolean(r[TblRoleFields.BtnXoa.Name].ToString());
        //EnableSearch = Convert.ToBoolean(r[TblRoleFields.BtnSearch.Name].ToString());
        //EnableSave = Convert.ToBoolean(r[TblRoleFields.BtnThem.Name].ToString());
        //EnableApply = Convert.ToBoolean(r[TblRoleFields.BtnCapNhat.Name].ToString());
        //EnableBack = Convert.ToBoolean(r[TblRoleFields.BtnBack.Name].ToString());
        //EnableRefesh = Convert.ToBoolean(r[TblRoleFields.BtnRefesh.Name].ToString());
        //}
        //else
        //{
        //EnableDel = EnableSearch = EnableSave = EnableApply = EnableBack = EnableRefesh = false;
        //}
    }

    //kiem tra quyen cho tung nut -- de hien thi ra thong bao phai khho the nay day
    private ButtonClickHandler SetHandlerButton(ButtonClickHandler _handLer,string _buttonName)
    {
        SiteMapNode _node = SiteMap.CurrentNode;
        TblThanhVienEntity _TblThanhVienEntity = new TblThanhVienManager().SelectOne(Convert.ToInt32(hidThanhVienID.Value));
        if (_TblThanhVienEntity != null)
        {
            //neu khong la admin
            if (_TblThanhVienEntity.Role.Equals(enumRoleGroup.Administrator.ToString()) == false)
            {
                DataTable _dtRole = _TblRoleManager.be_SelectRoleIdByThanhVienIdAndSiteMapId(_node.Url, Convert.ToInt32(hidThanhVienID.Value));
                if (_dtRole.Rows.Count > 0)
                {
                    DataRow r = (DataRow)_dtRole.Rows[0];

                    //neu quyen == false
                    if (!Convert.ToBoolean(r[_buttonName].ToString()))
                        _handLer = null;

                }
                else
                { 
                    //neu chua co quyen 
                    _handLer = null;
                }
            }
        }
        return _handLer;
    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(AddClick, TblRoleFields.BtnThem.Name) != null)
        {
            AddClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(SaveClick, TblRoleFields.BtnLuuLai.Name) != null)
        {
            SaveClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    protected void btnDel_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(DelClick, TblRoleFields.BtnXoa.Name) != null)
        {
            DelClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    protected void btnApply_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(ApplyClick, TblRoleFields.BtnCapNhat.Name) != null)
        {
            ApplyClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    protected void btnRefesh_Click(object sender, EventArgs e)
    {
        //if (SetHandlerButton(RefeshClick, TblRoleFields.BtnRefesh.Name) != null)
        //{
        //    RefeshClick(this, new EventArgs());
            
        //}
        //else
        //{
        //    ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        //}
        Response.Redirect(Request.RawUrl);
    }
    protected void btnSearch_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(SearchClick, TblRoleFields.BtnSearch.Name) != null)
        {
            SearchClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    protected void btnBack_Click(object sender, EventArgs e)
    {
        if (SetHandlerButton(BackClick, TblRoleFields.BtnBack.Name) != null)
        {
            BackClick(this, new EventArgs());
        }
        else
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
        }
    }
    //protected void btnCancel_Click(object sender, EventArgs e)
    //{
    //    if (SetHandlerButton(CancelClick, TblRoleFields.BtnThem.Name) != null)
    //    {
    //        CancelClick(this, new EventArgs());
    //    }
    //    else
    //    {
    //        ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
    //    }
    //}
    //protected void btnList_Click(object sender, EventArgs e)
    //{
    //    if (SetHandlerButton(ListClick) != null)
    //    {
    //        ListClick(this, new EventArgs());
    //    }
    //    else
    //    {
    //        ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "showMessageSlide('Quyền giới hạn', 'Bạn không có quyền thực hiện chức năng này <br/> liên hệ với [<b>quản trị viên</b>] để được giúp đỡ!');", true);
    //    }
    //}
}